
# y = kx +b
# f(x) =
# 1.面向对象（class）
# 2.面向过程
# 3.函数式编程（算法）def 函数

import time

# Python中定义一个函数：
# def fuc_name():
#    '''描述函数信息'''
#       内容

# time.sleep(3)

def hello_world():
    '''描述函数信息：打印hello world'''
    print("hello world!")

hello_world() #函数的调用：函数名（） func_name()


# positional argument位置参数
# func_name() 括号里的内容
# 1.位置参数
# 2.关键字参数

def add(a,b,c):
    '''描述函数信息'''
    if a>b:
        print(a-b)
    else:
        print(c)

# 函数调用需要满足括号内的条件
add(1,2,3)


# 关键词参数可以给定默认值，默认关键字参数，在调用函数时，可以不赋值
# 有了默认值，至少不会出bug
def add(a=2,b=3,c=4):
    '''描述函数信息'''
    if a>b:
        print(a-b)
    else:
        print(c)

# 函数调用需要满足括号内的条件
add()


# # 关键字参数和位置参数可以混合用，但是关键字参数作为默认参数要放在末尾
#
# def add(a,b=3,c=4):
#     '''描述函数信息'''
#     if a>b:
#         print(a-b)
#     else:
#         print(c)
#
# add(1,2,3)
#
def add(a,b,c=4):
    '''描述函数信息'''
    if a>b:
        print(a-b)
    else:
        print(c)
#
add(5,b=3) #关键字参数要放在后面

a = add(5,b=3)
print(a)

# 关键字参数的优势：没有顺序
def add(a,c=4,b=3):
    '''描述函数信息'''
    if a>b:
        print(a-b)
    else:
        print(c)

add(6)




